package main

import "gofirst/ch09func/httpserver"

func main() {
	//函数定义方式
	//funclearn.FuncDefine()

	//省略号，定义不定个函数参数
	//funcparams.FuncParamsLearn()

	//go中的延迟调用机制，defer
	//deferlearn.DeferLearn()
	//deferlearn.DeferCopy1()
	//deferlearn.DeferCopy2()

	//v := deferlearn.DeferAndReturn1()
	//fmt.Println(v)
	//v := deferlearn.DeferAndReturn2()
	//fmt.Println(*v)

	//defer本质上是注册了一个延迟函数，defer函数的执行顺序已经确定（FILO)
	//defer没有嵌套，defer的机制是要取代try...catch/except...finally...

	//panic recover
	//err_exception.LearnErr()
	//err_exception.LearnException()

	//主协程无法捕获子协程的异常
	//httpserver.LearnHttpForException()
	//父子协程，异常时。父协程的recover无法捕获子协程的异常
	httpserver.LearFZRoutinException()

	//go语言认为错误就要自己处理，就个人而言，go语言的这种想法是正确的，但实际的使用中，确实很烦人
}
